#!/usr/bin/env python
# -*- coding:utf-8 -*-
#装饰器函数
def zh(sh): #接收被装饰函数的名称
    def zhshi():    #装饰器功能函数
        print("在执行被装饰函数前添加功能")
        r = sh()   # 执行装饰器函数接收到的被装饰函数，也就是执行被装饰函数
        print("在执行被装饰函数后添加功能")
        return r    #将被装饰函数执行的结果返回给装饰器功能函数
    return zhshi    #将装饰器功能函数名称返回给装饰器函数

@zh     # @zh 的意思是执行装饰器函数，并且将被装饰的函数名，当做参数传给装饰器函数，并且将装饰器函数的返回值重新赋值给被装饰的函数
#被装饰函数
def f1():
    print("f1被装饰函数功能")

#执行f1函数
f1()
# 在执行被装饰函数前添加功能
# f1被装饰函数功能
# 在执行被装饰函数后添加功能